#include<unistd.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<stdio.h>
#include<assert.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<signal.h>
#include<stdlib.h>
#include<sys/wait.h>
#include<sys/types.h>
#include<dirent.h>
#include<string.h>
#include<errno.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include<stdlib.h>
#include<stdio.h>
#define POINT_SIZE 4
#define COMMANDNUM 10000 
#define KEY 5639
#define ENVNUM 64	
struct envVar {
	char name[200];
	char content[200];
};
struct user {
	char name[200];
	int user_pipes[2];
	unsigned pid;
	unsigned id;
	int socket_fd;
	char ip[200];
	int port;
	int toAll;
	int havaValue;
	char buffer[5000];
	char m[5000];
	int using;
};
struct commandInfo {
	int boolInFile;
	int boolOutFile;
	char argList[200];
	char commandName[200];
	char value[200];
	int pipeTo;
	int pipe2To;
	char inFile[80];
	char outFile[80];
	int booluse;
	int file_pipes[2];
	int pipeIn;
	char argv3[6000];
	//project 2------------------
	int ipc_pipe;
	int ipc_pipe2;
	int ipc_in;
	//--------------------------
};
struct lineInfo {
	int file_pipes[2];
	int using;
};
struct envVar env[ENVNUM];
char *builtInCommand[]={
	"0",
	"printenv",
	"setenv",
	"who",
	"name",
	"yell",
	"tell"
};

struct commandInfo commandList[COMMANDNUM];
struct lineInfo linepipe[COMMANDNUM];


